home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_200 / 265_01 / sectwr.c < prev    next >
Text File  |  1990-02-13  |  1KB  |  55 lines

  1. /*
  2.  *    absolute sector write program
  3.  *    -----------------------------
  4.  *
  5.  *    written by    Rainer Gerhards
  6.  *            Petronellastr. 6
  7.  *            D-5112 Baesweiler
  8.  *            West Germany
  9.  */
  10.  
  11. #include <stdio.h>
  12.  
  13. #define    MAXSECT        720    /* maximum sectors accessible        */
  14. #define    SECTSIZE    512    /* OS sector size            */
  15.  
  16. static char        sectbuf[SECTSIZE];    /* must be in DS!    */
  17.  
  18. main(argc, argv)
  19. char    *argv[];
  20. {
  21. FILE    *fp;
  22. int    strtsect;
  23. int    i;
  24. int    numsect;
  25.  
  26. if(argc != 3)
  27.     {
  28.     fprintf(stderr, "Usage: sectwr filenam start-sector\n");
  29.     exit(1);
  30.     }
  31. if((fp = fopen(argv[1], "rb")) == NULL)
  32.     {
  33.     fprintf(stderr, "Can't open %s", argv[1]);
  34.     exit(1);
  35.     }
  36. strtsect = atoi(argv[2]);
  37. if(strtsect < 0 || strtsect > MAXSECT)
  38.     {
  39.     fprintf(stderr, "start-sector wrong.\n");
  40.     exit(1);
  41.     }
  42. for(numsect = 0 ; !feof(fp) ; ++numsect)
  43.     {
  44.     for(i = 0 ; i < SECTSIZE ; ++i)
  45.         sectbuf[i] = fgetc(fp);        /* ignore EOF    */
  46.     if(wrsct(strtsect, sectbuf))
  47.         {
  48.         fprintf(stderr, "error writing source disk!\n");
  49.         exit(2);
  50.         }
  51.     ++strtsect;
  52.     }
  53. printf("%d sectors written.\n", numsect);
  54. }
  55.